// 版权所有2017 etcd作者
// 
// 根据Apache许可证2.0版（以下简称“许可证”）获得许可；
// 除非遵守许可证，否则不得使用此文件。
// 您可以通过
// 
// www.apache.org/licenses/LICENSE-2.0 
// 
// 除非适用法律要求或书面同意，否则根据许可证分发的软件
// 按“原样”分发，
// 无任何明示或暗示的保证或条件。
// 请参阅许可证，了解管理许可的特定语言和
// 许可证下的限制。

// 包clientv3util包含从clientv3派生的实用程序函数。
package clientv3util

import (
	"go.etcd.io/etcd/client/v3"
)

// KeyExists在给定的
// key存在时返回一个计算结果为true的比较操作。它通过检查键'Version'是否大于0来实现这一点。
// 它是事务删除操作中有用的保护。
func KeyExists(key string) clientv3.Cmp {
	return clientv3.Compare(clientv3.Version(key), ">", 0)
}

// KeyMissing在给定密钥不存在时返回一个计算结果为true的比较操作。
func KeyMissing(key string) clientv3.Cmp {
	return clientv3.Compare(clientv3.Version(key), "=", 0)
}
